""" Python Character Mapping Codec generated from CP1252.TXT with gencodec.py.

Written by Marc-Andre Lemburg (mal@lemburg.com).

(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
(c) Copyright 2000 Guido van Rossum.

Adapted by Henk-Jan Ebbers for Bots open source EDI translator
Regular UNOB: UNOB char, CR, LF and Crtl-Z
"""

import codecs
import sys

### Codec APIs

class Codec(codecs.Codec):

    def encode(self,input,errors='strict'):

        return codecs.charmap_encode(input,errors,encoding_map)

    def decode(self,input,errors='strict'):

        return codecs.charmap_decode(input,errors,decoding_map)

class StreamWriter(Codec,codecs.StreamWriter):
    pass

class StreamReader(Codec,codecs.StreamReader):
    pass

### encodings module API
class IncrementalEncoder(codecs.IncrementalEncoder):
	def encode(self, input, final=False):
		return codecs.charmap_encode(input,self.errors,encoding_map)[0]

class IncrementalDecoder(codecs.IncrementalDecoder):
	def decode(self, input, final=False):
		return codecs.charmap_decode(input,self.errors,decoding_table)[0]
def getregentry():
	return codecs.CodecInfo(
		name='unob',
		encode=Codec().encode,
		decode=Codec().decode,
		incrementalencoder=IncrementalEncoder,
		incrementaldecoder=IncrementalDecoder,
		streamreader=StreamReader,
		streamwriter=StreamWriter,
	)

### Decoding Map

#decoding_map = codecs.make_identity_dict(range(128))
#decoding_map.update({
decoding_map = {	
#	0x0000:0x0000,	  #NUL
#	0x0001:0x0000,	  #SOH
#	0x0002:0x0000,	  #STX
#	0x0003:0x0000,	  #ETX
#	0x0004:0x0000,	  #EOT
#	0x0005:0x0000,	  #ENQ
#	0x0006:0x0000,	  #ACK
#	0x0007:0x0000,	  #Bell
#	0x0008:0x0000,	  #BackSpace
#	0x0009:0x0000,	  #Tab
	0x000a:0x000a,	  #lf
#	0x000b:0x0000,	  #Vertical Tab
#	0x000c:0x0000,	  #FormFeed
	0x000d:0x000d,	  #cr
#	0x000e:0x0000,	  #SO
#	0x000f:0x0000,	  #SI
#	0x0010:0x0000,	  #DLE
#	0x0011:0x0000,	  #DC1
#	0x0012:0x0000,	  #DC2
#	0x0013:0x0000,	  #DC3
#	0x0014:0x0000,	  #DC4
#	0x0015:0x0000,	  #NAK
#	0x0016:0x0000,	  #SYN
#	0x0017:0x0000,	  #ETB
#	0x0018:0x0000,	  #CAN
#	0x0019:0x0000,	  #EM
	0x001a:0x001a,	  #SUB, cntrl-Z
#	0x001b:0x0000,	  #ESC
	0x001c:0x001c,	  #FS
	0x001d:0x001d,	  #GS
#	0x001e:0x0000,	  #RS
	0x001f:0x001f,	  #US
	0x0020:0x0020,    #<SPACE> 
	0x0021:0x0021,    #!
	0x0022:0x0022,    #"
#	0x0023:0x0023,    ##
#	0x0024:0x0024,	  #$
	0x0025:0x0025,    #%
	0x0026:0x0026,    #&
	0x0027:0x0027,	  #'
	0x0028:0x0028,    #(
	0x0029:0x0029,    #)
	0x002A:0x002A,    #*
	0x002B:0x002B,    #+
	0x002C:0x002C,    #,
	0x002D:0x002D,    #-
	0x002E:0x002E,    #.
	0x002F:0x002F,    #/
	0x0030:0x0030,    #0
	0x0031:0x0031,    #1
	0x0032:0x0032,    #2
	0x0033:0x0033,    #3
	0x0034:0x0034,    #4
	0x0035:0x0035,    #5
	0x0036:0x0036,    #6
	0x0037:0x0037,    #7
	0x0038:0x0038,    #8
	0x0039:0x0039,    #9
	0x003A:0x003A,    #:
	0x003B:0x003B,    #;
	0x003C:0x003C,    #<
	0x003D:0x003D,    #=
	0x003E:0x003E,    #>
	0x003F:0x003F,    #?
#	0x0040:0x0040,    #@
	0x0041:0x0041,    #A
	0x0042:0x0042,	  #B
	0x0043:0x0043,    #C
	0x0044:0x0044,    #D
	0x0045:0x0045,    #E
	0x0046:0x0046,    #F
	0x0047:0x0047,    #G
	0x0048:0x0048,    #H
	0x0049:0x0049,    #I
	0x004A:0x004A,    #J
	0x004B:0x004B,    #K
	0x004C:0x004C,    #L
	0x004D:0x004D,    #M
	0x004E:0x004E,	  #N
	0x004F:0x004F,    #O
	0x0050:0x0050,    #P
	0x0051:0x0051,    #Q
	0x0052:0x0052,    #R
	0x0053:0x0053,    #S
	0x0054:0x0054,    #T
	0x0055:0x0055,	  #U
	0x0056:0x0056,	  #V
	0x0057:0x0057,    #W
	0x0058:0x0058,    #X
	0x0059:0x0059,    #Y
 	0x005A:0x005A,    #Z
# 	0x005B:0x005B,    #[
# 	0x005C:0x005C,    #\
# 	0x005D:0x005D,    #]
# 	0x005E:0x005E,    #^
# 	0x005F:0x005F,    #_
# 	0x0060:0x0060,    #`
	0x0061:0x0061,    #a
	0x0062:0x0062,	  #b
	0x0063:0x0063,    #c
	0x0064:0x0064,    #d
	0x0065:0x0065,    #e
	0x0066:0x0066,    #f
	0x0067:0x0067,    #g
	0x0068:0x0068,    #h
	0x0069:0x0069,    #i
	0x006a:0x006a,    #j
	0x006b:0x006b,    #k
	0x006c:0x006c,    #l
	0x006d:0x006d,    #m
	0x006e:0x006e,	  #n
	0x006f:0x006f,    #o
	0x0070:0x0070,    #p
	0x0071:0x0071,    #q
	0x0072:0x0072,    #r
	0x0073:0x0073,    #s
	0x0074:0x0074,    #t
	0x0075:0x0075,	  #u
	0x0076:0x0076,	  #v
	0x0077:0x0077,    #w
	0x0078:0x0078,    #x
	0x0079:0x0079,    #y
 	0x007a:0x007a,    #z
# 	0x007B:0x007B,    #{
# 	0x007C:0x007C,    #|
# 	0x007D:0x007D,    #}
# 	0x007E:0x007E,    #~
#	0x007F:0x007F,	  #DEL
}

### Encoding Map

encoding_map = codecs.make_encoding_map(decoding_map)
